#ifndef ZMESH_RENDERER_H_
#define ZMESH_RENDERER_H_

#include "../Common/GlobalDefines.h"
#include "Renderer.h"
#include "../Scene/Mesh3D.h"

GLOBAL_NAMESPACE_BEGIN

class MeshRenderer : public Renderer
{
public:
    MeshRenderer();
    ~MeshRenderer();

    void beginToDraw();
    void draw();
    void endDraw();

private:
    void drawMesh(MeshSpace::Mesh3D *mesh);

    void drawSolidFlat(MeshSpace::Mesh3D *mesh);
    void drawSolidSmooth(MeshSpace::Mesh3D *mesh);
    void drawPoints(MeshSpace::Mesh3D *mesh);
    void drawWireFrame(MeshSpace::Mesh3D *mesh);
    void drawMeshByVerticeColors(MeshSpace::Mesh3D *mesh);
    void drawMeshByFaceColors(MeshSpace::Mesh3D *mesh);


protected:

};

GLOBAL_NAMESPACE_END

#endif//ZMESH_RENDERER_H_